]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
panel: Change openAppMenu() to a toggle action
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 26 Apr 2013 14:14:55 +0000 (16:14 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Fri, 26 Apr 2013 15:32:54 +0000 (17:32 +0200)
It makes sense to allow closing the app menu with the same shortcut
that is used to open it, so make it a toggle action and allow it
TOPBAR_POPUP mode.

https://bugzilla.gnome.org/show_bug.cgi?id=686756

js/ui/panel.js
js/ui/windowManager.js

index dd558af5fa3fef245c455c5aa5c0137d599e92d0..0de1494be7d4e53d9f3e37c7e774ec8884a56867 100644 (file)
@@ -1112,17 +1112,18 @@ const Panel = new Lang.Class({
         return true;
     },
 
-    openAppMenu: function() {
+    toggleAppMenu: function() {
         let indicator = this.statusArea.appMenu;
         if (!indicator) // appMenu not supported by current session mode
             return;
 
         let menu = indicator.menu;
-        if (!indicator.actor.reactive || menu.isOpen)
+        if (!indicator.actor.reactive)
             return;
 
-        menu.open();
-        menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+        menu.toggle();
+        if (menu.isOpen)
+            menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
     },
 
     set boxOpacity(value) {
index c642d2c70b6fa903ad9d958e8e50fb02392ed0a9..3617d56959ebd17443e1e32abcb8746862f9f308 100644 (file)
@@ -172,8 +172,9 @@ const WindowManager = new Lang.Class({
         this.addKeybinding('open-application-menu',
                            new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }),
                            Meta.KeyBindingFlags.NONE,
-                           Shell.KeyBindingMode.NORMAL,
-                           Lang.bind(this, this._openAppMenu));
+                           Shell.KeyBindingMode.NORMAL |
+                           Shell.KeyBindingMode.TOPBAR_POPUP,
+                           Lang.bind(this, this._toggleAppMenu));
 
         Main.overview.connect('showing', Lang.bind(this, function() {
             for (let i = 0; i < this._dimmedWindows.length; i++)
@@ -679,8 +680,8 @@ const WindowManager = new Lang.Class({
         Main.ctrlAltTabManager.popup(backwards, binding.get_name(), binding.get_mask());
     },
 
-    _openAppMenu : function(display, screen, window, event, binding) {
-        Main.panel.openAppMenu();
+    _toggleAppMenu : function(display, screen, window, event, binding) {
+        Main.panel.toggleAppMenu();
     },
 
     _showWorkspaceSwitcher : function(display, screen, window, binding) {